1. Technical Field
One or more embodiments described herein relate generally to receiving and processing user inputs. More specifically, one or more embodiments relate to receiving and processing user inputs with respect to hybrid computing applications.
2. Background and Relevant Art
Computing devices (e.g., computers, tablets, smart phones), provide numerous ways for people to capture, create, share, view, and otherwise interact with numerous types of digital content. For example, many computing devices allow users to interact with digital content via a touch screen or graphical user interface. Additionally, many computing devices facilitate interaction with digital content via one or more applications.
In facilitating interactions with digital content, many systems combine elements of both native and non-native (e.g., web-based) applications. In particular, many mobile devices make use of hybrid applications that include a native element developed for a particular platform and/or device that can access various functionalities of the computing device (e.g., global positioning system (GPS), camera, address book). In addition to the native element, hybrid applications often include a web element that is generalized for multiple platforms and accessed over a network (e.g., Internet). In this way, a computing device can host or otherwise implement an application within a native element (e.g., a native container) having access to platform specific functions as well as utilizing online capabilities accessible to the computing device.
While hybrid applications provide various improvements over other types of applications, hybrid applications can encounter input ambiguities when receiving and processing user inputs. In particular, hybrid applications may fail to correctly receive or process one or more user inputs causing frustration when interacting with hybrid applications via a graphical user interface. For example, both native elements and web elements of a hybrid application are capable of receiving and processing a touch input via a touchscreen interface. As such, when receiving a touch input that the native element and the web element are both capable of receiving and processing, the hybrid application may misinterpret the touch input by processing multiple inputs rather than an intended single input. Alternatively, rather than incorrectly processing multiple inputs, the web element or the native element may defer to each other and fail to process the touch input altogether. As a result, hybrid applications can fail to accurately interpret an otherwise valid touch input.
In addressing input ambiguity, some operating systems enable communication between the native element and the web element to resolve any unintended ambiguities. For example, where the native element receives a touch input that the native element is incapable of processing, the native element can forward the input to the web element to process the input. Alternatively, the web element can forward an input to the native element to process the input using a similar process. Nevertheless, enabling the native element or the web element to defer processing various touch inputs can result in dead zones where neither the native element nor the web element responds to a touch input. As such, users can experience frustration when interacting with hybrid applications.
Accordingly, there are a number of considerations to be made in receiving and processing user inputs with respect to hybrid applications.